﻿using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using Interfaces.RepositoryModels.ExternalModels.FilterModels;
using Interfaces.RepositoryModels.InternalModels.EconomicInformationModels;
using Interfaces.RepositoryModels.InternalModels.NewsInformationModels;
using Interfaces.RepositoryModels.InternalModels.UserRoleModels;

namespace SQLRepositories
{
    public interface IDBEconomicInformationServiceContext
    {
        //security
        DbSet<UserModel> Users { get; set; }
        DbSet<RoleModel> Roles { get; set; }
        DbSet<SessionModel> Sessions { get; set; }
        //filters
        DbSet<CompanyFilterModel> CompanyFilters { get; set; }
        DbSet<IndustryFilterModel> IndustryFilters { get; set; }
        DbSet<NewsFilterModel> NewsFilters { get; set; }
        DbSet<XchangeRateFilterModel> XchangeRateFilters { get; set; }
        DbSet<QuoteisFilterModel> QuoteisFilters { get; set; }
        DbSet<SectorsFilterModel> SectorsFilters { get; set; }
        //base economic data
        DbSet<PairModel> PairModels { get; set; }
        DbSet<XchangeRateModel> XchangeRates { get; set; }
        DbSet<SectorModel> Sectors { get; set; }
        DbSet<IndustryModel> Industries { get; set; }
        DbSet<CompanyModel> Companies { get; set; }
        DbSet<QuoteModel> Quoteis { get; set; }
        //news models
        DbSet<FeedModel> Feeds { get; set; }
        DbSet<NewsDataItemModel> News { get; set; }
        DbSet<PersonModel> Persons { get; set; }
        DbSet<CategoryModel> Categories { get; set; }
        DbSet<LinkModel> Links { get; set; }
        //methods group
        int SaveChanges();
        DbEntityEntry<TEntity> Entry<TEntity>(TEntity entity) where TEntity : class;
    }
}
